// addNearby.js
const db = wx.cloud.database();
const app = getApp(); // 获取小程序实例

Page({
  data: {
    previewImage: '' // 预览图片链接
  },
  submitForm(e) {
    const formData = e.detail.value;

    // 检查所有内容是否为空
    if (this.isFormDataValid(formData)) {
      // 若表单内容合法，则执行添加操作
      wx.showLoading({
        title: '上传中...'
      });
      this.uploadImage(formData); // 执行上传图片操作
    } else {
      // 若表单内容不合法，则显示错误提示
      wx.showToast({
        title: '请填写完整信息！',
        icon: 'none'
      });
    }
  },
  chooseImage() {
    // 选择图片并预览
    wx.chooseImage({
      count: 1, // 只能选择一张图片
      sizeType: ['compressed'], // 压缩图
      sourceType: ['album', 'camera'], // 相册或相机
      success: res => {
        const tempFilePaths = res.tempFilePaths;
        this.setData({
          previewImage: tempFilePaths[0] // 更新预览图片链接
        });
      }
    });
  },
  uploadImage(formData) {
    // 上传图片至云存储
    const filePath = this.data.previewImage;
    const cloudPath = 'nearby/' + formData.name + Date.now() + '.png';

    wx.cloud.uploadFile({
      cloudPath: cloudPath,
      filePath: filePath,
      success: res => {
        // 上传成功后执行添加操作
        formData.img = res.fileID; // 更新图片链接为云存储中的文件ID
        this.addNearby(formData); // 执行添加操作
      },
      fail: err => {
        console.error('Failed to upload image:', err);
        wx.hideLoading();
        wx.showToast({
          title: 'Failed to upload image!',
          icon: 'none'
        });
      }
    });
  },
  addNearby(formData) {
    // 添加附近地点记录到云数据库
    db.collection('zyzl_nearbylist').add({
      data: formData
    })
    .then(res => {
      console.log(res);
      wx.hideLoading();
      wx.showToast({
        title: 'Added successfully!',
        icon: 'success',
        duration: 2000,
        success: () => {
          // 返回上一页
          wx.navigateBack();
        }
      });
    })
    .catch(err => {
      console.error('Failed to add nearby:', err);
      wx.hideLoading();
      wx.showToast({
        title: 'Failed to add nearby!',
        icon: 'none'
      });
    });
  },
  // 检查表单内容是否为空
  isFormDataValid(formData) {
    for (const key in formData) {
      if (!formData[key]) {
        return false; // 若有任意内容为空，则返回false
      }
    }
    return true; // 若所有内容均不为空，则返回true
  }
});
